リスト:LASER Ver2.1プチコン プログラムリストタイトル:LASER Ver2.1 レーザーを撃つことを目的としたものです。 Yボタンでレーザー撃てます。 Bボタンでオプション追加。 Aボタンでオプションが減ります。 Xボタンで終了します。 もちろん十字キー(スライドパッド)で移動できます。 オプションの移動履歴保存処理を改善しています。 (166,167行辺り 無駄なFORループをなくしました) これだけでも、結構動作が軽くなりました。 BGのテストを兼ねて超適当な星空を実装しました。 また、ショットボタンから手を離してもレーザーは止まりません。(写真が撮りにくいです) ちなみに、60行の「5」を違う数字に変更するとオプションの色が変わります。 235行の最後の「6」を変更するとレーザーの色が変わります。 まあ、プチコンを買うような人にはこんな説明は必要ないでしょうが... http://www43.tok2.com/home/ogut/index.html リスト作成に上記サイトの「PTC2HTML」を利用させていただいています。 001. ′Ver 2.1 002. ′BGニホシヲヒョウシ゛ 003. ′Ver 2.0 7コショリオチナシ 004. ′キ゛シ゛ヒ゛ットシフト 005. ACLS 006. CLEAR 007. VISIBLE 1,1,1,1,1,1 008. CLS:COLOR 0 009. ′GPAGE 0,0,0 010. 011. OPMAX=20 ′オフ゜ションノカス゛ 012. MID0=0 ′シ゛キノスフ゜ライトID0 013. MID1=OPMAX+1 ′シ゛キノスフ゜ライトID1 014. 015. ′LASERステ-タス シ゛キ+オフ゜ション 016. DIM LST(OPMAX+1,4) 017. FOR I=0 TO OPMAX 018. LST(I,0)=0 ′フラク゛ 019. LST(I,1)=0 ′ナカ゛サ 020. LST(I,2)=0 ′カイシX 021. LST(I,3)=0 ′カイシY 022. NEXT I 023. 024. ′ク゛ラフィックショキカ 025. GPAGE 0,0,0 026. GPRIO 2 027. 028. ′スフ゜ライトシ゛ュンヒ゛ 029. DIM SPK(100),SPP(100),SPH(100),SPV(100),SPI(100) 030. DIM SPF(100),SPX(100),SPY(100) 031. FOR I=0 TO 99 032. SPF(I)=0 ′0:スキッフ゜ 1:シンキ 2:イト゛ウ 3:ヘンコウ 4:シュウキョ 033. NEXT I 034. ′シ゛キセッテイ 035. SPK(MID0)=256 036. SPP(MID0)=2 037. SPH(MID0)=0 038. SPV(MID0)=0 039. SPI(MID0)=0 040. SPF(MID0)=1 041. SPX(MID0)=100 042. SPY(MID0)=100 043. SPK(MID1)=257 044. SPP(MID1)=2 045. SPH(MID1)=0 046. SPV(MID1)=0 047. SPI(MID1)=0 048. SPF(MID1)=1 049. SPX(MID1)=116 050. SPY(MID1)=100 051. 052. SPCNT=MID1 ′スフ゜ライトサイタ゛イスウ 053. 054. ′オフ゜ション 055. OPW=8 ′オフ゜ションノウエイト 056. DIM OP(OPW*OPMAX,2) ′オフ゜ショヨウエイトテ-フ゛ル X,Y 057. OPC=0 ′ヒョウシ゛チュウノオフ゜ションスウ 058. FOR I=1 TO OPMAX 059. SPK(I)=200 060. SPP(I)=5 061. SPH(I)=0 062. SPV(I)=0 063. SPI(I)=0 064. SPF(I)=0 065. SPX(I)=0 066. SPY(I)=0 067. NEXT I 068. 069. ′スフ゜ライトサ゛ヒョウ 0:X 1:Y 070. DIM OP$(2) 071. 072. GOSUB @BGSET 073. GOSUB @BGSCR 074. 075. GOSUB @SPWRITE 076. 077. @MLOOP 078. ′ニュウリョク 079. XX=0:YY=0 080. BTN=BUTTON(0) 081. 082. IF BTN AND 64 GOTO @EXIT ′Xホ゛タン 083. IF BTN AND 128 THEN SHOT=1 ′Yホ゛タン 084. IF BTN AND 1 THEN YY=-2 ′ウエ 085. IF BTN AND 2 THEN YY=2 ′シタ 086. IF BTN AND 4 THEN XX=-2 ′ヒタ゛リ 087. IF BTN AND 8 THEN XX=2 ′ミキ゛ 088. 089. ′レンソ゛クシテニュウリョクサレナイヨウニフラク゛テ゛セイキ゛ョスル 090. IF BTN AND 16 THEN AB=1 ELSE AB=0 ′Aホ゛タン 091. IF AB==0 THEN AFLG=1 092. IF BTN AND 32 THEN BB=1 ELSE BB=0 ′Bホ゛タン 093. IF BB==0 THEN BFLG=1 094. 095. IF XX!=0 OR YY!=0 THEN GOSUB @MYMOVE 096. 097. IF SHOT==0 GOTO @SHOTSKIP 098. FOR I=0 TO OPC 099. LST(I,0)=1 100. NEXT I 101. SHOT=0 102. @SHOTSKIP 103. 104. ′オフ゜ション Aホ゛タン=ヘラス Bホ゛タン=フヤス 105. IF AFLG AND AB THEN OPADD=-1 106. IF BFLG AND BB THEN OPADD=1 107. IF OPADD!=0 THEN GOSUB @OPTION 108. 109. WAIT 1 110. GOSUB @SPWRITE 111. GOSUB @LASER 112. GOSUB @BGSCR 113. 114. GOTO @MLOOP 115. 116. 117. @OPTION 118. IF OPADD==-1 GOTO @OPTMI 119. ′オフ゜ションツイカ 120. BFLG=0 121. IF OPC==OPMAX GOTO @OPEND 122. OPC=OPC+1 123. OPX=SPX(OPC-1) 124. IF OPC==1 THEN OPX=OPX+4 125. OPY=SPY(OPC-1) 126. ′ツイカシタ オフ゜ションノ イチ 127. OP$(0)=OP$(0)+CHR$(OPX)*OPW 128. OP$(1)=OP$(1)+CHR$(OPY)*OPW 129. ′スフ゜ライト 130. SPX(OPC)=OPX 131. SPY(OPC)=OPY 132. SPF(OPC)=1 133. GOTO @OPEND 134. @OPTMI 135. AFLG=0 136. IF OPC==0 GOTO @OPEND 137. SPF(OPC)=4 138. OPC=OPC-1 139. @OPEND 140. OPADD=0 141. RETURN 142. 143. @EXIT 144. ACLS 145. PRINT”シュウリョウ 146. END 147. 148. @MYMOVE 149. ′シ゛キノイト゛ウ 150. SPX(MID0)=SPX(MID0)+XX 151. IF SPX(MID0)<0 THEN SPX(MID0)=0 152. IF SPX(MID0)>223 THEN SPX(MID0)=223 153. SPY(MID0)=SPY(MID0)+YY 154. IF SPY(MID0)<0 THEN SPY(MID0)=0 155. IF SPY(MID0)>175 THEN SPY(MID0)=175 156. SPF(MID0)=2 157. SPX(MID1)=SPX(MID0)+16 158. SPY(MID1)=SPY(MID0) 159. SPF(MID1)=2 160. ′オフ゜ションイト゛ウ 161. IF OPC==0 GOTO @OPMVSKIP 162. ′オフ゜ションウエイトテ-フ゛ルヲ1ツスライト゛ 163. OPWORK=OPW*OPC-1 164. ′サイコ゛1モシ゛キリトル 165. ′セントウニ シ゛キノイチヲイレル 166. OP$(0)=CHR$(SPX(MID0)+4)+LEFT$(OP$(0),OPWORK) 167. OP$(1)=CHR$(SPY(MID0))+LEFT$(OP$(1),OPWORK) 168. 169. ′オフ゜ツョンスフ゜ライトニハンエイ 170. FOR I=1 TO OPC 171. IF SPF(I)!=0 GOTO @OPHSKIP 172. SPX(I)=ASC(MID$(OP$(0),I*OPW-1,1)) 173. SPY(I)=ASC(MID$(OP$(1),I*OPW-1,1)) 174. SPF(I)=2 175. @OPHSKIP 176. NEXT I 177. @OPMVSKIP 178. RETURN 179. 180. ′---スフ゜ライトカキカエ 181. @SPWRITE 182. FOR J=0 TO SPCNT 183. SN=J 184. ON SPF(J) GOSUB @SKIP,@SPNEW,@SPMOVE,@SPCHANG,@SPDEL 185. NEXT J 186. RETURN 187. 188. @SKIP ′ナニモシナイ 189. RETURN 190. 191. @SPNEW 192. SPSET SN,SPK(SN),SPP(SN),SPH(SN),SPV(SN),SPI(SN) 193. SPF(SN)=0 194. GOSUB @SPMOVE 195. RETURN 196. 197. @SPMOVE 198. SPOFS SN,SPX(SN),SPY(SN) 199. SPF(SN)=0 200. RETURN 201. 202. @SPCHANG ′ミサクセイ 203. SPF(SN)=0 204. RETURN 205. 206. @SPDEL 207. SPCLR SN 208. SPF(SN)=0 209. RETURN 210. 211. @LASER 212. FOR K=0 TO OPC 213. IF LST(K,0)==0 GOTO @LANEXT 214. ′フルイレ-サ゛-ヲケス 215. ′ナカ゛サ0ナラフルイレ-サ゛-ハナイ 216. IF LST(K,1)==0 GOTO @LASK01 217. LEND=LST(K,2)+LST(K,1) 218. IF LEND>255 THEN LEND=255 219. GLINE LST(K,2),LST(K,3),LEND,LST(K,3),0 220. @LASK01 221. ′アタラシイレ-サ゛- 222. ′ナカ゛サカ゛220ヲコケタフ゛ンハ スキマニナル 223. LST(K,1)=LST(K,1)+15 224. LST(K,2)=SPX(K)+28 ′(32-4) 225. IF K!=0 THEN LST(K,2)=LST(K,2)-4 226. LST(K,3)=SPY(K)+8 227. IF LST(K,1)>220 THEN LST(K,2)=LST(K,2)+(LST(K,1)-220) 228. 229. IF LST(K,2)>255 THEN LST(K,0)=0 ′カ゛メンカ゛イニテ゛タ 230. IF LST(K,0)==0 THEN LST(K,1)=0 231. IF LST(K,0)==0 GOTO @LANEXT 232. 233. LEND=LST(K,2)+LST(K,1) 234. IF LEND>255 THEN LEND=255 235. GLINE LST(K,2),LST(K,3),LEND,LST(K,3),6 236. @LANEXT 237. NEXT K 238. RETURN 239. 240. 241. ′--BGノショリ-- 242. @BGSET ′BGニハイケイヲヒ゛ョウカ゛ 243. BGPAGE 0 244. FOR I=0 TO 63 245. FOR J=0 TO 23 246. BGPUT 1,I,J,928,0,0,0 ′マックラ 247. ′メント゛ウナノテ゛ランタ゛ムテ゛ホシヲタ゛ス 248. RN1=RND(16) 249. RN2=RND(2) 250. IF RN2==0 THEN HOSHI=859 ELSE HOSHI=891 251. IF RN1==0 THEN BGPUT 1,I,J,HOSHI,0,0,0 252. NEXT J 253. NEXT I 254. RETURN 255. 256. @BGSCR 257. IF BGCHK(1)!=0 GOTO @BGSSK ′ホカンシ゛ョウタイナラ スキッフ゜ 258. BGOFS 1,0,0 259. BGOFS 1,511,0,1024 260. @BGSSK 261. RETURN 262. 263. ジャンル別一覧
人気のクチコミテーマ
|